Capability Discovery Optimization

ABSTRACT

Presented are methods and apparatus for optimizing access to service capabilities information for clients associated with user in a communication system. Communications requesting service capabilities information is directed through one or more capabilities application servers for inspection before forwarding the requests to their destination user&#39;s client device. If the capabilities application server has previously stored the information then the reply is generated from information stored on the capabilities application server and no request is forwarded to the user&#39;s client device, optimizing the process by reducing network communications.

RELATED APPLICATION

The present application is related to, and claims priority from, U.S.Provisional Patent Application No. 61/526,529, filed Aug. 23, 2011,entitled “Capability Discovery Optimization”, to Mikael Klein, ChristerBoberg, Jan Lidin and Anders Lindgren, the disclosure of which isincorporated herein by reference.

TECHNICAL FIELD

The present invention generally relates to communication systems,devices, software and methods and, more particularly, to mechanisms andtechniques for discovering service capabilities of users incommunication systems.

BACKGROUND

During the past years, the interest in using mobile andlandline/wireline computing devices in day-to-day communications hasincreased. Desktop computers, workstations, and other wireline computerscurrently allow users to communicate, for example, via e-mail, videoconferencing, and instant messaging (IM). Mobile devices, for example,mobile telephones, handheld computers, personal digital assistants(PDAs), etc. also allow the users to communicate via e-mail, videoconferencing, IM, etc. Mobile telephones have conventionally served asvoice communication devices, but through technological advancements theyhave recently proved to be effective devices for communicating data,graphics, etc. Wireless and landline technologies continue to merge intoa more unified communication system, as user demand for seamlesscommunications across different platforms increases.

Many communication applications allow for real-time or near real-timecommunication that falls outside of the traditional voice communicationassociated with wireline and wireless telephone communications. Chatsessions, instant messaging, Short Message Service (SMS), videoconferencing, are a few such communication vehicles. Many of these typesof communications are expected to become increasingly popular,particularly in view of the proliferation of wireless devices andcontinual technological breakthroughs.

In order to implement such technologies, the “presence” technology isused to determine the location, willingness to communicate, and otherparameters relating to real-time or near real-time communications. Thepresence technology generally refers to applications and services thatfacilitate location and identification of one or more endpoints to suchcommunication links. For example, if a first user of a wireless,handheld device intends to initiate an IM session with a second IM user,presence services may be used to present the second user's willingnessto receive IM messages. Presence services are an integral part of thirdgeneration (3G) wireless networks, and are intended to be employedacross a wide variety of communication devices.

Presence information may be created at a presence server or anassociated system. Presence information may be a status indicator thatconveys the ability and willingness of a potential user to communicatewith other users. The presence server may provide the presenceinformation for distribution to other users (called watchers) to conveythe availability of the user for communication. Presence information isused in many communication services, such as IM and recentimplementations of voice over IP communications.

More specifically, a user client may publish a presence state toindicate its current communication status. This published state informsothers that wish to contact the user of his availability and willingnessto communicate. One use of presence is to display an indicator icon onIM clients, for example a choice of a graphic symbol with aneasy-to-convey meaning, and a list of corresponding text descriptions ofeach of the states. This is similar to the “on-hook” or “off-hook” stateof a fixed telephone.

Common states regarding the user's availability are “free for chat”,“busy”, etc. Such states exist in many variations across differentmodern instant messaging clients. However, the standards support a richchoice of additional presence attributes that may be used for presenceinformation, such as user mood, location, or free text status.

Presence service is a network service which accepts, stores anddistributes presence information. The presence service may beimplemented as a single server or may have an internal structureinvolving multiple servers and proxies. There may be complex patterns ofredirection and proxying while retaining logical connectivity to asingle presence service. Also presence service may be implemented asdirect communication among presentity and watchers, i.e., a server isnot required.

A number of entities may be implemented in a presence servicearchitecture. One of these entities is the presentity, which is anentity that provides presence information. Another entity is thepresence server, which receives presence information from presentities.The watcher is an entity that is interested in the presence information.

The presence information (e.g., location, willingness to communicate ata certain time or with certain users, etc.) may be collected andutilized by presence servers, which may notify authorized “watchers” whoare interested in certain presence information. Watcher applications maybe implemented in wireline and/or wireless terminals to obtain presenceinformation from the presence servers about other users. This may comein the form of a notification, issued to the watcher by the presenceserver.

Notifications to users/watchers that a targeted user/device has becomeavailable may be sent as complete or partial presence information. Inother words, there are a number of different pieces of presenceinformation that can be associated with the totality of the presenceinformation. In a similar manner to the presence information andassociated structure, there are location servers and locationinformation regarding the users. The location information may includegeographical location information.

In the IMS/SIP standard solutions SIP Publish is used to upload presenceinformation to a presence server. Recently 3GPP has introduced ServiceIdentification for communication services (CoSe) and IMS applications(IARI). Feature tags included in the SIP Register message includes thecommunication services, IMS applications and other capabilities that areavailable on the registering terminal. This information is equivalent tothe service element information that is conveyed in the presencepublication.

When a terminal is powered-on, it normally first sends a SIP Registermessage over an air interface to the registrar, e.g., home subscriberserver (HSS), and thereafter sends a SIP Publish message to publish itsavailable services to the Presence Server. In fact, there may be severalpublication messages sent by a UE over the air interface being poweredon since many terminal implementations often require each application tosend a separate SIP publish with service specific data.

The GSMA RCS industry initiative developed during the last few years togenerate new applications for “always on” customers has not really takenoff yet in the market. Recently a slightly new approach to RCS, calledRCS-e, has been suggested which provides a subset of the functionalityprovided by RCS (with some extensions). One idea behind RCS-e is, forexample, to provide a simplified RCS architecture where somefunctionality has been omitted, or rather made optional, in the hopes ofgaining more rapid adoption in the market. For instance, presenceinformation is optional in RCS-e.

One problem with the RCS-e approach when presence functionality has beenremoved is that the service capabilities of other users are no longeravailable. In order to address that problem, RSC-e proposes the use ofSIP OPTIONS requests peer-to-peer instead to probe for the servicecapabilities of another user. A problem with this solution is that eachclient needs to send SIP OPTIONS requests to all users in the addressbook to check for the capabilities, which generates a huge amount oftraffic in the network. Since the SIP OPTIONS request is sent on the UNIon both the originating and the terminating side it generates trafficalso on the RAN as well as contributing to the battery drain on thehandsets.

One solution to this problem is for client devices to include all oftheir service capabilities as feature tags when they register with thecommunication system, so that the Capability application server (AS)receives them in the 3rd Party Register request sent from the IMS CoreNode to the Capability AS. However, it may be the case that the clientwill not include tags for all services that the client supports, whichmakes it difficult for the server to provide the correct capabilitiesback to a requestor. For instance, the client might include an ICSI forOMA IM but it won't be possible then to distinguish between whether thatclient, for example, has Chat and/or File Transfer service capabilities.

Accordingly, it would be desirable to provide devices, systems andmethods for enabling capability discovery of client devices in suchsystems that avoid the afore-described problems and drawbacks.

SUMMARY

The following exemplary embodiments provide a number of advantages andbenefits relative to existing service capability discovery techniques,devices and systems. For example, and without limitation, it will beapparent that one advantage associated with the following embodiments isto reduce traffic in the network, potentially by quite a significantamount, by enabling service capabilities to be cached in the network.When other users query for the capabilities, a response can be sent tothe querying users without having to send out the query signals for thecapabilities to other users. This saves traffic on the RAN by, forexample, about 50%, minimizes the battery drain on the client deviceswhich do not have to answer to multiple service discovery requests, aswell as shorten the round trip time for the capability discoveryoperations. Moreover, there is no impact on the client side to implementthese embodiments, and the UNI remains the same.

According to an exemplary embodiment, a method, stored in a memory andexecuting on a processor, for optimizing service capabilities storage ina communication system comprises receiving, by a capabilitiesapplication server, a first request, sent from a first user's clientdevice associated with the capabilities application server, toward thecapabilities application server, for service capability informationassociated with a second user's client device wherein the first requestcomprises service capability information associated with the firstuser's client device and storing, by the capabilities applicationserver, the service capability information associated with the firstuser's client device in a storage location associated with thecapabilities application server.

According to another exemplary embodiment, a method, stored in a memoryand executing on a processor, for optimizing service capabilitiesstorage in a communication system comprises receiving, by a capabilitiesapplication server, a first request, sent from a first user's clientdevice toward the capabilities application server, for servicecapabilities information from a second user's client device associatedwith the capabilities application server, sending, from the capabilitiesapplications server, a second request toward the second user's clientdevice for the service capabilities information, receiving, by thecapabilities application server, a reply to the second requestcomprising the service capabilities information and storing, by thecapabilities application server, the service capabilities information ina storage location associated with the capabilities application server.

According to another exemplary embodiment, a method, stored in a memoryand executing on a processor, for optimizing service capabilitiesstorage in a communication system comprises receiving, by a capabilitiesapplication server, a registration request, from a first user's clientdevice associated with the capabilities application server, wherein theregistration request comprises identity information associated with thefirst user's client device, sending, by the capabilities applicationserver, a first request for service capabilities information toward thefirst user's client device based on the identity information, receiving,by the capabilities application server, a reply to the first requestcomprising service capabilities information associated with the firstuser's client device and storing, by the capabilities applicationserver, the service capabilities information in a storage locationassociated with the capabilities application server.

According to another exemplary embodiment, a capabilities applicationserver comprises a processor for executing computer instructions and amemory for storing the computer instructions wherein the computerinstructions further comprise a communication component for sending andreceiving messages associated with managing service capabilitiesinformation from a plurality of user client devices, an engine componentfor processing the messages and collecting the service capabilitiesinformation and a storage component for storing the service capabilitiesinformation for retrieval by the engine component to optimize furtherrequests for the service capabilities information.

According to an embodiment, a method for storing service capabilities ina communication system comprises receiving, in a network node, a requestsignal from a first user's client device which requests servicecapability information associated with a second user wherein the requestsignal also includes service capability information associated with saidfirst user's client device; forwarding, by the network node, the requestsignal to an capabilities application server; and storing, by thecapabilities application server, the service capability informationassociated with the first user's client device.

The capabilities application server (CAS) can be an originating or aterminating CAS. The service capability information can be stored in anAccept-Contact header of the request signal. The CAS can also store theGRUU (or sip.instance) information with the service capabilityinformation to permit subsequent aggregation and/or retrieval of thatinformation in response to a service capability query from another user.

According to an embodiment, a capability application server (CAS)comprises: an interface configured to receive a request signal from afirst user's client device which requests service capability informationassociated with a second user wherein the request signal also includesservice capability information associated with said first user's clientdevice; and a processor configured to parse and store the servicecapability information associated with the first user's client device.

The capabilities application server (CAS) can be an originating or aterminating CAS. The service capability information can be stored in anAccept-Contact header of the request signal. The CAS can also store theGRUU (or sip.instance) information with the service capabilityinformation to permit subsequent aggregation and/or retrieval of thatinformation in response to a service capability query from another user.

According to another embodiment, a method for storing servicecapabilities in a communication system comprises receiving, at acapabilities application server, an indication that a client device hasregistered with the communication system; polling, by the capabilitiesapplication server, the client device with a signal requesting thatclient device to send service capability information; receiving, by thecapabilities application server, a signal with the service capabilityinformation; and storing, by the capabilities application server, theservice capability information.

ABBREVIATIONS

-   3GPP 3^(rd) Generation Partnership Project-   CAS Capability Application Server-   GRUU Global Routable UA URI-   GSMA Group Special Mobile Association-   HTTP Hypertext Transfer Protocol-   ICSI IMS Communication Service Identifier-   IMS IP Multimedia Subsystem-   OMA Open Mobile Alliance-   RAN Radio Access Network-   RCS Rich Communication Suite-   SIP Session Initiation Protocol-   UA User Agent-   UE User Equipment-   UNI User-Network Interface-   URI Uniform Resource Identifier

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of the specification, illustrate one or more embodiments and,together with the description, explain these embodiments. In thedrawings:

FIG. 1 is a schematic diagram of a communication system including a userclient devices, network nodes and capabilities application servers;

FIG. 2 is a signaling diagram depicting service capabilities stored inan originating capabilities application server;

FIG. 3 is a signaling diagram depicting service capabilities stored in aterminating capabilities application server;

FIG. 4 is a signaling diagram depicting service capabilities storedafter capabilities application server receives a client registration andpolls the client for service capabilities information;

FIG. 5 is flowchart depicting a method for optimizing servicecapabilities storage at an originating capabilities application serverin a communication system;

FIG. 6 is flowchart depicting an alternative method for optimizingservice capabilities storage at a terminating capabilities applicationserver in a communication system;

FIG. 7 is flowchart depicting an alternative method for optimizingservice capabilities storage based on client registration and polling ina communication system;

FIG. 8 is a schematic diagram representing a capabilities applicationserver including a communications component, an engine component and astorage component;

FIG. 9 is a schematic diagram of a user terminal; and

FIG. 10 is a schematic diagram of a server.

DETAILED DESCRIPTION

The following description of the exemplary embodiments refers to theaccompanying drawings. The same reference numbers in different drawingsidentify the same or similar elements. The following detaileddescription does not limit the invention. Instead, the scope of theinvention is defined by the appended claims. The following embodimentsare discussed, for simplicity, with regard to the terminology andstructure of capability discovery servers and associated nodes incommunication systems. However, the embodiments to be discussed next arenot limited to these systems but may be applied to other communicationsystems.

Reference throughout the specification to “one embodiment” or “anembodiment” means that a particular feature, structure, orcharacteristic described in connection with an embodiment is included inat least one embodiment of the present invention. Thus, the appearanceof the phrases “in one embodiment” or “in an embodiment” in variousplaces throughout the specification are not necessarily all referring tothe same embodiment. Further, the particular features, structures orcharacteristics may be combined in any suitable manner in one or moreembodiments.

According to exemplary embodiments, the capabilities of client devicescan be cached in the network, for example as those capabilities arereceived in the SIP OPTIONS request and responses, instead of relying on3^(rd) Party Register requests to obtain the service capabilitiesinformation. This cached information, which has been stored in thenetwork, is then used to provide capability information when requestedin subsequent requests.

In order to provide some context for such embodiments, and as shown inFIG. 1, a general communication system that discovers, stores andprovides clients' capability information can include user equipments(UEs) 10, 12 and 14 which are connected (or are capable of connecting)to the network 16. UEs 10, 12, 14 can be any type of client device,e.g., a mobile phone, computer, tablet device, PDA, television, or otherdevice, etc. In this example, the network 16 includes IP MultimediaSubsystem (IMS) core elements 18, 20 and 22. These elements may beinterconnected via the Internet, or may be interconnected via othercommunication means. The communication paths shown in FIG. 1 may bewireline and/or wireless. If the UEs 10, 12, and/or 14 are connected tothe network 16 wirelessly then they may be connected thereto via asuitable radio access network (RAN, not shown). Each of the UEs 10, 12,14 may have a Capabilities Application Server (AS) 24, 26, 28,respectively, associated therewith. Alternatively, various UEs may beassociated with the same Cap. AS, as will be seen below.

According to a first embodiment, the capabilities of a user (oralternatively stated the capabilities of that user's client device(s))can be cached in an originating Capability AS. Service capabilities caninclude (but are not limited to) presence, location, message handling,broadcast/multicast, and/or group management, etc. An example of thisembodiment is illustrated by way of the signaling diagram of FIG. 2.Therein, as indicated by signal 200, a request from the client device 14associated with user C includes the supported capabilities of user C inthe Contact header of that signal. The request is routed via a node 22of the IMS Core to an originating Capability AS (CAS) 28.

According to this embodiment, the CAS 28 will cache the capabilities ofUE 1 14 for user C together with the GRUU (or sip.instance), asgenerally indicated by block 202. The request is proxied by the IMS CoreNode 20, 22 to user B in the terminating network, as indicated by signal204. It should be noted in the exemplary embodiment that the cachedcapabilities for user C comprise the capabilities of all of user C'sregistered devices aggregated and included in the 204 signal.

In response to the request signal 204, User B's client device 12transmits a further response signal 206 which contains the servicecapabilities of user B. In this example, at a later point in time, userA 10 queries the capabilities of user C by sending a SIP OPTIONS request208, routed via IMS Core 18, 22 to the CAS 28 belonging to (associatedwith) user C 14. The CAS 28 aggregates the services capabilities for allregistered clients of user C 14, as indicated by block 210. A responsesignal 212 is then sent back to user A 10, which signal 212 comprisesthe aggregated service capabilities of user (client device) C 14 (alldevices) which were previously stored in a memory device associated withCAS 28. Thus, it can be seen that, according to this embodiment, anoriginating CAS can cache (store) a client device's capabilities forlater retrieval and forwarding to other devices which inquire about thatclient device's capabilities.

As an alternative, or in conjunction with the afore-described embodimentwherein service capabilities are cached in an originating CAS, servicecapabilities can be cached in a terminating CAS as will now be describedwith respect to the exemplary signaling diagram of FIG. 3. Therein, asshown by step/signal 302, User C 10 queries the capabilities of user A10 by sending a SIP OPTIONS request 302, routed via IMS Core 22, 18 tothe CAS 24 belonging to (associated with) user A 10. In this exemplarycase there are no service capabilities cached for user A 10 at the timethat the CAS 24 receives the request signal 302, as indicated by block304, so a SIP OPTIONS request signal 306 will be sent out to eachregistered client of user A.

As shown in FIG. 3, the request 306 is routed through IMS Core 18 touser A's registered client(s) 10. It will be appreciated by thoseskilled in the art that the detection of service capabilities associatedwith a particular user can refer to the discovery of servicecapabilities associated with one or more than one device which isassociated with (registered to) that user. The response to signal 306,i.e., signal 308, contains the service capabilities of user A. Accordingto this embodiment, the response 308 which is sent back to the CAS 24includes the supported capabilities of user A 10 in the Accept-Contactheader of the signal 308. The CAS 24 then caches the capabilities foreach registered client of user A together with the GRUU (orsip.instance) as indicated by block 310. The CAS 24 aggregates theservices capabilities for all registered clients of user A and aresponse signal 312 is sent back to user A including the servicecapabilities.

In this example, user B 12 subsequently queries the capabilities of userA by sending a SIP OPTIONS request 314, routed via IMS Core 18, 20 tothe CAS 24 belonging to user A. As indicated by block 316, the CAS 24aggregates the services capabilities for all registered clients of userA and transmits a response signal 318 back to user B 12 including theservice capabilities of user A via the network.

A third alternative, which can be used by itself in a system or inconjunction with either or both of caching service capabilities inoriginating and/or terminating CASs, is to poll and cache servicecapabilities after registration as will now be discussed with respect tothe exemplary signaling diagram of FIG. 4. Therein, as indicated bysignal 402, User A (device 10) registers in the IMS network 18 (whichresults in an unnumbered acknowledgement signal back from the IMSnetwork 18 to client device 10). Next, a 3rd Party Registration requestsignal 404 is sent to the CAS 24 (again an unnumbered acknowledgementsignal is shown).

The CAS 24 according to this embodiment detects the new registration andwill send out a SIP OPTIONS request 406 to retrieve the servicecapabilities of the newly registered client, i.e., user A. The responsesignal 408 which is returned to the CAS 24 includes the supportedcapabilities of user A in the Accept-Contact header of signal 408. TheCAS 24 caches the capabilities for UE 1 10 of user A together with theGRUU (or sip.instance) as indicated by block 410. It should be noted inthe exemplary embodiment that the supported capabilities of a User Aincludes the capabilities from all of User A's registered clientdevices.

Subsequently, in this example, user C 14 queries the capabilities ofuser A by sending a SIP OPTIONS request 412, routed via the IMS Core 22,18 to the CAS 24 belonging to user A 10. The CAS 24 aggregates theservices capabilities for all registered clients of user A10 and then aresponse signal 414 is sent back to user C 14 including the servicecapabilities of the client devices associated with user A.

Looking now to FIG. 5, an exemplary method embodiment 500 for optimizingservice capabilities storage in a communication system is depicted.Starting at step 502 in the exemplary method embodiment 500, acapabilities application server receives a first request from a firstuser's client device for service capability information. It should benoted in the exemplary method embodiment 500 that the first user'sclient device is associated with the capabilities application server. Itshould further be noted in the exemplary method embodiment 500 that therequest for service capability information is for a second user's clientdevice and that the first request contains service capabilityinformation associated with the first user's client device.

Continuing at step 504 of the exemplary method embodiment 500, thecapabilities application server stores the service capabilityinformation associated with the first user's client device in a storagelocation associated with the capabilities application server. In furtheraspects of the exemplary method embodiment 500, service capabilitiesaccess can be optimized by the capabilities application server whenfuture requests arrive for capabilities information that thecapabilities application server has stored. Continuing with the furtheraspects of the exemplary method embodiment 500, at a subsequent time thecapabilities application server can receive a second request from athird user's client device for service capability information associatedwith the first user's client device. Next in the further aspects of theexemplary method embodiment 500, the capabilities application server candetermine that the requested service capabilities information isavailable from the storage location without the need for sending anotherrequest to the first user's client device for service capabilitiesinformation. Continuing with the further aspects of the exemplary methodembodiment 500, the capabilities application server can collect theservice capability information from the storage location and send areply to the second request with the requested service capabilityinformation.

In another aspect of the exemplary method embodiment 500, the firstrequest can be directed through an IMS Core node associated with thecapabilities application server. It should be noted in the exemplarymethod embodiment 500 that the first request and the second request areSession Initiation Protocol (SIP) Options requests. It should further benoted in the exemplary method embodiment 500 that the service capabilityinformation can include a Globally Routable User Agent Uniform ResourceIdentifier (GRUU) or a Session Initiation Protocol identifier and isassociated with a Contact header with respect to the first request. Inanother aspect of the exemplary method embodiment 500, the capabilitiesapplication server can aggregate the service capabilities of registeredclients associated with a user.

Looking now to FIG. 6, another exemplary method embodiment 600 foroptimizing service capabilities storage in a communication system isdepicted. Beginning at step 602 of the exemplary method embodiment 600,a capabilities application server receives a first request from a firstuser's client device. It should be noted in the exemplary methodembodiment 600 that the request is for service capabilities informationfrom a second user's one or more client devices. It should further benoted in the exemplary method embodiment 600 that the second user's oneor more client devices are associated with the capabilities applicationserver.

Next at step 604 of the exemplary method embodiment 600, thecapabilities application server sends a second request toward the seconduser's one or more client devices. It should be noted in the exemplarymethod embodiment 600 that the second request is a request for theservice capabilities information associated with the second user's oneor more client devices. Continuing at step 606 of the exemplary methodembodiment 600, the capabilities application server receives a reply tothe second request for service capabilities information. It should benoted in the exemplary method embodiment 600 that the request comprisesthe service capabilities information associated with the second user'sclient device.

Next at step 608 of the exemplary method embodiment 600, thecapabilities application server stores the service capabilitiesinformation in a storage location associated with the capabilitiesapplications server. It should be noted in the exemplary methodembodiment 600 that the storage location can be on the capabilitiesapplication server or it can be on another server communicativelyconnected to the capabilities application server.

In further aspects of the exemplary method embodiment 600, the servicecapabilities access can be optimized by the capabilities applicationserver receiving a third request from a third user's client device forservice capabilities information associated with the second user'sclient device. Continuing with the exemplary method embodiment 600, thecapabilities application server can send a reply to the third requestwith the reply comprising the service capabilities information retrievedfrom the storage location associated with the capabilities applicationserver. It should be noted in the exemplary method embodiment 600 thatthe capabilities application server does not send a request to thesecond user's client device. It should further be noted in the exemplarymethod embodiment 600 that any requests for service capabilitiesinformation already in a storage location is satisfied from the storagelocation without requiring any further requests to the target user'sclient device, resulting in greatly reduced communication trafficassociated with obtaining service capabilities information.

In a further aspect of the exemplary method embodiment 600, the firstrequest can be directed through an IMS Core node and the first, secondand third request can be a Session Initiation Protocol (SIP) Optionsrequest. It should be noted in the exemplary embodiment 600 that theservice capabilities information can comprise a Globally Routable UserAgent Uniform Resource Identifier (GRUU) and is associated with anAccept-Contact header. It should further be noted in the exemplarymethod embodiment 600 that a reply to any of the aforementioned requestscan comprise aggregating service capabilities of one or more registeredclients associated with a user.

Looking now to FIG. 7, another exemplary method embodiment 700 foroptimizing service capabilities storage in a communication system isdepicted. Beginning at step 702 of the exemplary method embodiment 700,a capabilities application server receives a registration request from afirst user's client device. It should be noted in the exemplary methodembodiment 700 that the first user's client device is associated withthe capabilities application server. It should further be noted in theexemplary method embodiment 700 that the registration request comprisesidentity information associated with the first user's client device.

Next at step 704 of the exemplary method embodiment 700, thecapabilities application server sends a first request toward the firstuser's client device. It should be noted in the exemplary methodembodiment 700 that the first request is a request for the servicecapabilities information associated with the first user's client device.It should further be noted in the exemplary method embodiment 700 thatthe first request is addressed based on the identity informationprovided in the registration request. Continuing at step 706 of theexemplary method embodiment 700, the capabilities application serverreceives a reply to the first request for service capabilitiesinformation. It should be noted in the exemplary method embodiment 700that the request comprises the service capabilities informationassociated with the first user's client device.

Next at step 708 of the exemplary method embodiment 700, thecapabilities application server stores the service capabilitiesinformation in a storage location associated with the capabilitiesapplications server. It should be noted in the exemplary methodembodiment 700 that the storage location can be on the capabilitiesapplication server or it can be on another server communicativelyconnected to the capabilities application server.

In further aspects of the exemplary method embodiment 700, the servicecapabilities access can be optimized by the capabilities applicationserver receiving a second request from a second user's client device forservice capabilities information associated with the first user's clientdevice. Continuing with the exemplary method embodiment 700, thecapabilities application server can send a reply to the second requestwith the reply comprising the aggregated service capabilitiesinformation retrieved from the storage location associated with thecapabilities application server. It should be noted in the exemplarymethod embodiment 700 that the capabilities application server does notsend a request to the any of the first user's client devices. It shouldfurther be noted in the exemplary method embodiment 700 that anyrequests for service capabilities information already in a storagelocation is satisfied from the storage location without requiring anyfurther requests to the target user's client device, resulting ingreatly reduced communication traffic associated with obtaining servicecapabilities information.

In a further aspect of the exemplary method embodiment 700, theregistration request can be directed through an IMS Core node and thefirst and second request can be a Session Initiation Protocol (SIP)Options request. It should be noted in the exemplary embodiment 700 thatthe service capabilities information can comprise a Globally RoutableUser Agent Uniform Resource Identifier (GRUU) and is associated with anAccept-Contact header. It should further be noted in the exemplarymethod embodiment 700 that a reply to any of the aforementioned servicecapabilities information requests can comprise aggregating servicecapabilities information of one or more registered clients associatedwith a user.

Looking now to FIG. 8, an exemplary embodiment of a capabilitiesapplication server 800 including a communication component 802, anengine component 804 and a storage component 806 is depicted. Thecommunications component of the exemplary embodiment provides thecapabilities to communicate with other nodes of a communication system.It should be noted in the exemplary embodiment that other nodes includebut are not limited to Call Session Control Function nodes and othercapabilities application servers. In another aspect of the exemplaryembodiment, the communication component 802 can implement one or moreprotocols including but not limited to the Session Initiation Protocol.For example, Hypertext Transfer Protocol (HTTP) messages, such as HTTPPOST, can be used instead of SIP messages. In another aspect of theexemplary embodiment, the communication component 802 can exchangeinformation with the engine component 804 for operational purposes suchas but not limited to receiving requests such as but not limited to aSession Initiation Protocol Options message for delivery to other nodesor sending replies such as but not limited to a reply to a request forservice capabilities information.

Continuing with the exemplary embodiment, the engine component 804provides the capability to process the requests received from othernodes on the network via the communication component 802, generatereplies associated with the received requests and store servicecapabilities information from user's client devices via the storagecomponent 806. In another aspect of the exemplary embodiment, the enginecomponent 804 provides the capability to aggregate the servicecapabilities of the clients registered for a particular user and providethe aggregation as a reply to a request for service capabilitiesinformation.

Next in the exemplary embodiment, the storage component 806 provides thecapability to store service capabilities information for all the usersassociated with a particular capabilities application server 800. Thestorage component 806 can be a part of the capabilities applicationserver 800 or it can be storage that is on another server andcommunicatively connected to the capabilities application server 800. Itshould be noted in the exemplary embodiment that the storage assignedfor a particular instance of service capabilities information can beallocated, reallocated, moved, deleted, merged and divided based on thenumber of clients registered for a particular user.

From the foregoing, it will be apparent that one advantage associatedwith the foregoing embodiments is to reduce traffic in the network,potentially by quite a significant amount, by enabling servicecapabilities to be cached in the network. When other users query for thecapabilities, a response can be sent to the querying users withouthaving to send out the request for the capabilities to other users. Thissaves traffic on the RAN by, for example, about 50%, minimizes thebattery drain on the client devices which do not have to answer tomultiple service discovery requests, as well as shorten the round triptime for the capability discovery operations. Moreover, there is noimpact on the client side to implement these embodiments, and the UNIremains the same.

Terminals that may act as client devices as described in connection withthe exemplary embodiments may be desktop/personal computers,workstations, large-scale computing terminals, wireless terminals, orany other computing device capable of executing presence awarenessapplications. The wireless terminals may include devices such aswireless/cellular telephones, personal digital assistants (PDAs), orother wireless handsets, as well as portable computing devices. Themobile terminals may utilize computing components to control and managethe conventional device activity as well as the functionality providedby the exemplary embodiments. Hardware, firmware, software or acombination thereof may be used to perform the various methods andtechniques described in this document.

For purposes of illustration and not of limitation, an example of arepresentative mobile terminal computing system capable of carrying outoperations in accordance with the exemplary embodiments is illustratedin FIG. 9. It should be recognized, however, that the principles of thepresent exemplary embodiments are equally applicable to other devices.

The exemplary mobile computing arrangement 900 may include aprocessing/control unit 902, such as a microprocessor, reducedinstruction set computer (RISC), or other central processing module. Theprocessing unit 902 need not be a single device, and may include one ormore processors. For example, the processing unit 902 may include amaster processor and associated slave processors coupled to communicatewith the master processor.

The processing unit 902 may control the basic functions of the mobileterminal as dictated by programs available in the storage/memory 904.More particularly, the storage/memory 904 may include an operatingsystem and program modules for carrying out functions and applicationson the mobile terminal. For example, the program storage may include oneor more of read-only memory (ROM), flash ROM, programmable and/orerasable ROM, random access memory (RAM), subscriber interface module(SIM), wireless interface module (WIM), smart card, or other removablememory device, etc. The program modules and associated features may alsobe transmitted to the mobile computing arrangement 900 via data signals,such as being downloaded electronically via a network, such as theInternet.

One of the programs that may be stored in the storage/memory 904 is aspecific program 906. As previously described, the specific program 906may interact with an IMS core network and/or a capabilities applicationserver to request and supply capabilities associated with the device900. As described above, service capabilities can include (but are notlimited to) presence, location, message handling, broadcast/multicast,and/or group management, etc. The program 906 and associated featuresmay be implemented in software and/or firmware operable by way of theprocessor 902. The program storage/memory 904 may also be used to storedata 908 associated with the present exemplary embodiments. In oneexemplary embodiment, the programs 906 and data 908 are stored innon-volatile electrically-erasable, programmable ROM (EEPROM), flashROM, etc. so that the information is not lost upon power down of themobile terminal 900.

The processor 902 may also be coupled to user interface 910 elementsassociated with the mobile terminal. The user interface 910 of themobile terminal may include, for example, a display 912 such as a liquidcrystal display, a keypad 914, speaker 916, and a microphone 918. Theseand other user interface components are coupled to the processor 902 asis known in the art. The keypad 914 may include alpha-numeric keys forperforming a variety of functions, including dialing numbers andexecuting operations assigned to one or more keys. Alternatively, otheruser interface mechanisms may be employed, such as voice commands,switches, touch pad/screen, graphical user interface using a pointingdevice, trackball, joystick, or any other user interface mechanism.

The mobile computing arrangement 900 may also include a digital signalprocessor (DSP) 920. The DSP 920 may perform a variety of functions,including analog-to-digital (ND) conversion, digital-to-analog (D/A)conversion, speech coding/decoding, encryption/decryption, errordetection and correction, bit stream translation, filtering, etc. Thetransceiver 922, generally coupled to an antenna 924, may transmit andreceive the radio signals associated with a wireless device.

The mobile computing arrangement 900 of FIG. 9 is provided as arepresentative example of a computing environment in which theprinciples of the present exemplary embodiments may be applied. From thedescription provided herein, those skilled in the art will appreciatethat the present invention is equally applicable in a variety of othercurrently known and future mobile and fixed computing environments. Forexample, the specific application 906 and associated features, and data908, may be stored in a variety of manners, may be operable on a varietyof processing devices, and may be operable in mobile devices havingadditional, fewer, or different supporting circuitry and user interfacemechanisms. It is noted that the principles of the present exemplaryembodiments are equally applicable to non-mobile terminals, i.e.,landline computing systems.

The capabilities application server, IMS Core node or other networknodes involved in the handling of service capabilities information inconnection with the above described embodiments may be any type ofcomputing device capable of processing and communicating servicecapabilities information. An example of a representative computingsystem capable of carrying out operations in accordance with the serversof the exemplary embodiments is illustrated in FIG. 10. Hardware,firmware, software or a combination thereof may be used to perform thevarious steps and operations described herein. The computing structure1000 of FIG. 10 is an exemplary computing structure that may be used inconnection with such a system.

The exemplary computing arrangement 1000 suitable for performing theactivities described in the exemplary embodiments may include acapabilities server or a registrar node (e.g., HSS, etc.). Such a server1001 may include a central processor (CPU) 1002 coupled to a randomaccess memory (RAM) 1004 and to a read-only memory (ROM) 1006. The ROM1006 may also be other types of storage media to store programs, such asprogrammable ROM (PROM), erasable PROM (EPROM), etc. The processor 1002may communicate with other internal and external components throughinput/output (I/O) circuitry 1008 and bussing 1010, to provide controlsignals and the like. The processor 1002 carries out a variety offunctions as is known in the art, as dictated by software and/orfirmware instructions.

The server 1001 may also include one or more data storage devices,including hard and floppy disk drives 1012, CD-ROM drives 1014, andother hardware capable of reading and/or storing information such asDVD, etc. In one embodiment, software for carrying out the abovediscussed steps may be stored and distributed on a CD-ROM 1016, diskette1018 or other form of media capable of portably storing information.These storage media may be inserted into, and read by, devices such asthe CD-ROM drive 1014, the disk drive 1012, etc. The server 1001 may becoupled to a display 1020, which may be any type of known display orpresentation screen, such as LCD displays, plasma display, cathode raytubes (CRT), etc. A user input interface 1022 is provided, including oneor more user interface mechanisms such as a mouse, keyboard, microphone,touch pad, touch screen, voice-recognition system, etc.

The server 1001 may be coupled to other computing devices, such as thelandline and/or wireless terminals and associated watcher applications,via a network. The server may be part of a larger network configurationas in a global area network (GAN) such as the Internet 1028, whichallows ultimate connection to the various landline and/or mobileclient/watcher devices.

The disclosed exemplary embodiments provide a user terminal, a system, amethod and a computer program product for obtaining, storing (caching)and supplying service capabilities associated with users and theirdevice(s). It should be understood that this description is not intendedto limit the invention. On the contrary, the exemplary embodiments areintended to cover alternatives, modifications and equivalents, which areincluded in the spirit and scope of the invention. Further, in thedetailed description of the exemplary embodiments, numerous specificdetails are set forth in order to provide a comprehensive understandingof the invention. However, one skilled in the art would understand thatvarious embodiments may be practiced without such specific details.

Although the features and elements of the present exemplary embodimentsare described in the embodiments in particular combinations, eachfeature or element can be used alone without the other features andelements of the embodiments or in various combinations with or withoutother features and elements disclosed herein. The methods or flow chartsprovided in the present application may be implemented in a computerprogram, software, or firmware tangibly embodied in a computer-readablestorage medium for execution by a general purpose computer or aprocessor.

1. A method, stored in a memory and executing on a processor, foroptimizing service capabilities storage in a communication system, saidmethod comprising: receiving, by a capabilities application server, afirst request, sent from a first user's client device, associated withsaid capabilities application server, toward said capabilitiesapplication server, for service capability information associated with asecond user's one or more client devices wherein said first requestcomprises service capability information associated with said firstuser's client device; and storing, by said capabilities applicationserver, said service capability information associated with said firstuser's client device in a storage location associated with saidcapabilities application server.
 2. The method of claim 1, furthercomprising optimizing service capabilities access in said communicationsystem by: receiving, by said capabilities application server, a secondrequest, sent from a third user's client device toward said capabilitiesapplication server, for service capability information associated withsaid first user's one or more client devices; and sending, by saidcapabilities application server, a reply to said second requestcomprising said service capabilities information from said storagelocation toward said third user's client device.
 3. The method of claim1, wherein said first request is directed through at least one IPMultimedia Subsystem node associated with said capabilities applicationserver.
 4. The method of claim 1, wherein said first request is one of aSession Initiation Protocol Options request and a Hypertext TransferProtocol Post message.
 5. The method of claim 1, wherein said servicecapabilities information further comprises a Globally Routable UserAgent Uniform Resource Identifier or a Session Initiation Protocolidentifier.
 6. The method of claim 1, wherein said service capabilitiesinformation is associated with a Contact header associated with saidfirst request.
 7. The method of claim 2, wherein said reply furthercomprises aggregating service capabilities of registered clientsassociated with said first user.
 8. The method of claim 2, wherein saidsecond request is one of a Session Initiation Protocol Options requestand a Hypertext Transfer Protocol Post message.
 9. A method, stored in amemory and executing on a processor, for optimizing service capabilitiesstorage in a communication system, said method comprising: receiving, bya capabilities application server, a first request, sent from a firstuser's client device toward said capabilities application server, forservice capabilities information from a second user's one or more clientdevices associated with said capabilities application server; sending,from said capabilities application server, a second request toward saidsecond user's one or more client devices for said service capabilitiesinformation; receiving, by said capabilities application server, a replyto said second request comprising said service capabilities information;and storing, by said capabilities application server, said servicecapabilities information in a storage location associated with saidcapabilities application server.
 10. The method of claim 9, furthercomprising optimizing service capabilities access in said communicationsystem by: receiving, by said capabilities application server, a thirdrequest, sent from a third user's client device toward said capabilitiesapplication server, for service capability information associated withsaid second user's one or more client devices; and sending, by saidcapabilities application server, a reply to said third requestcomprising said service capabilities information from said storagelocation toward said third user's client device.
 11. The method of claim9, wherein said first request is directed through at least one IPMultimedia Subsystem node associated with said capabilities applicationserver.
 12. The method of claim 9, wherein said first request is one ofa Session Initiation Protocol Options request and a Hypertext TransferProtocol Post message.
 13. The method of claim 9, wherein said servicecapabilities information further comprises a Globally Routable UserAgent Uniform Resource Identifier or a Session Initiation Protocolidentifier.
 14. The method of claim 9, wherein said service capabilitiesinformation is associated with an Accept-Contact header associated withsaid second request.
 15. The method of claim 10, wherein said replyfurther comprises aggregating service capabilities of registered clientsassociated with said second user.
 16. The method of claim 10, whereinsaid third request is one of a Session Initiation Protocol Optionsrequest and a Hypertext Transfer Protocol Post message.
 17. A method,stored in a memory and executing on a processor, for optimizing servicecapabilities storage in a communication system, said method comprising:receiving, by a capabilities application server, a registration request,from a first user's client device associated with said capabilitiesapplication server, wherein said registration request comprises identityinformation associated with said first user's client device; sending, bysaid capabilities application server, a first request for servicecapabilities information toward said first user's one or more clientdevices based on said identity information; receiving, by saidcapabilities application server, a reply to said first requestcomprising service capabilities information associated with said firstuser's one or more client devices; and storing, by said capabilitiesapplication server, said service capabilities information in a storagelocation associated with said capabilities application server.
 18. Themethod of claim 17, further comprising optimizing service capabilitiesaccess in said communication system by: receiving, by said capabilitiesapplication server, a second request for service capabilitiesinformation associated with said first user's one or more client devicesfrom a second user's client device; and sending, by said capabilitiesapplication server, a reply to said second request comprising saidservice capabilities information associated with said first user's oneor more client devices from said storage location toward said seconduser's client device.
 19. The method of claim 17, wherein saidregistration request is sent, by at least one IP Multimedia Subsystemnode associated with said capabilities application server, toward saidcapabilities application server.
 20. The method of claim 17, whereinsaid first request is one of a Session Initiation Protocol Optionsrequest and a Hypertext Transfer Protocol Post message.
 21. The methodof claim 17, wherein said service capabilities information furthercomprises a Globally Routable User Agent Uniform Resource Identifier ora Session Initiation Protocol identifier.
 22. The method of claim 17,wherein said service capabilities information is associated with anAccept-Contact header associated with said first request.
 23. The methodof claim 18, wherein said reply further comprises aggregating servicecapabilities of registered clients associated with said first user. 24.The method of claim 18, wherein said second request is one of a SessionInitiation Protocol Options request and a Hypertext Transfer ProtocolPost message.
 25. The method of claim 17, wherein said registrationrequest is a Session Initiation Protocol (SIP) REGISTER request and saidfirst request is a SIP OPTIONS request.
 26. A capabilities applicationserver, said server comprising: a processor for executing computerinstructions and a memory for storing said computer instructions whereinsaid computer instructions further comprise: a communication componentfor sending and receiving messages associated with managing servicecapabilities information from a plurality of user client devices; anengine component for processing said messages and collecting saidservice capabilities information; and a storage component for storingsaid service capabilities information for retrieval by said enginecomponent to optimize further requests for said service capabilitiesinformation.
 27. The server of claim 26, wherein said communicationscomponent further comprises a Session Initiation protocol component forcommunicating with other nodes networked to said capabilitiesapplication server.
 28. The server of claim 26, wherein saidcommunications component is a proxy for a communications component onanother capabilities application server.
 29. The server of claim 26,wherein said engine component further comprises an aggregation componentfor collecting service capabilities information from a plurality ofregistered clients associated with a user.
 30. The server of claim 26,wherein said storage component further comprises a proxy storagecomponent for redirecting storage of service capabilities information toa storage location on different server.